Given an array withnintegers, your task is to check if it could become non-decreasing by modifyingat most1element.

We define an array is non-decreasing ifarray[i] <= array[i + 1]holds for everyi(1 <= i < n).

Example 1:

Input:
 [4,2,3]

Output:
 True

Explanation:
 You could modify the first 
4
 to 
1
 to get a non-decreasing array.

Example 2:

Input:
 [4,2,1]

Output:
 False

Explanation:
 You can't get a non-decreasing array by modify at most one element.

Note:Thenbelongs to [1, 10,000].

class Solution {

public:

bool checkPossibility\(vector&lt;int&gt;& nums\) {

    if \(nums.size\(\)&lt;=2\)

        return true;



    int count=0;

    int one,two;

    for \(int i=1;i&lt;nums.size\(\);i++\){

       //cout&lt;&lt; nums\[i-1\]&lt;&lt;" "&lt;&lt;nums\[i\]&lt;&lt;" "&lt;&lt;endl;

        if \(nums\[i-1\]&gt;nums\[i\]\){

            count++;

            if \(i&lt;2\|\|nums\[i-2\]&lt;=nums\[i\]\) nums\[i-1\]=nums\[i\];

            else nums\[i\]=nums\[i-1\];

        }

    }



    if \(count&gt;=2\){

        return false;

    }

    else{

        return true;

    }

}

};

results matching ""

    No results matching ""